#include "G4UImessenger.hh"

class KSADPrimaryGeneratorAction;
class G4UIcommand;
class G4UIdirectory;
class G4UIcmdWithADoubleAndUnit;
class G4UIcmdWithAnInteger;
class G4UIcmdWithADouble;
class G4UIcmdWithAString;

class KSADPrimaryGeneratorMessenger : public G4UImessenger	// Interface UI with KSADPrimaryGeneratorAction
{
	public:
		KSADPrimaryGeneratorMessenger(KSADPrimaryGeneratorAction*);
		~KSADPrimaryGeneratorMessenger();

		void SetNewValue(G4UIcommand*,G4String);
		G4String GetCurrentValue(G4UIcommand*);

	private:
		KSADPrimaryGeneratorAction *action;

		G4UIdirectory *mainDirectory;
		G4UIcmdWithADoubleAndUnit *polarAngleCmd;
		G4UIcmdWithADoubleAndUnit *azimuthalAngleCmd;
		G4UIcmdWithAnInteger *startCrystalICmd;
		G4UIcmdWithAnInteger *startCrystalJCmd;
		G4UIcmdWithADoubleAndUnit *PFCKCmd;
		G4UIcmdWithADouble *PFCICmd;
		G4UIcmdWithADouble *PFCJCmd;
};
